# DotExpress

DotExpress 是一套文字轉點字轉譯工具，可將一般文字轉換為固定行寬的點字格式，並產生可直接用於紙本點字印製的輸出結果。

DotExpress 適用於需要精準控制紙本點字輸出的點譯人員與教育工作者。

---

### 為什麼是 DotExpress？

DotExpress 的誕生，是為了解決傳統點字轉譯工具長期存在的限制，特別是在處理中文、英文與技術符號等混合內容時所面臨的困難。它致力於為實際教育與專業場域中的點譯人員，提供一套現代化且無障礙的轉譯工作流程。

---

## 功能

### 多國文字轉譯

DotExpress 提供中文、英文與日文的獨立點字轉譯表設定。使用者可依不同語言與地區選擇適合的點字轉譯表，使轉譯結果更貼近實際使用需求。

例如，可使用臺灣注音點字轉換中文，並以 UEB 一級點字轉換英文。

---

### 固定行寬設定

DotExpress 可將一般文字轉譯為每行固定點字數量的版面格式，以支援紙本點字印製。

使用者可自行設定每行可容納的點字格數，輸出結果將依所指定的行寬進行格式化，以配合不同紙張尺寸與印刷需求。

---

### 自訂字典

為解決標準轉譯表未涵蓋的專有名詞、罕見詞彙或特殊用語所造成的轉譯問題，DotExpress 提供「自訂字典」功能。

此功能可讓使用者即時調整轉譯結果，同時維持整體轉譯流程的彈性。

使用者可定義「來源文字」與「對應點字」之間的自訂對照規則，以細緻控制轉譯輸出。

---

## 編輯字典

1. 點擊「字典」按鈕開啟字典編輯視窗
2. 點選「新增」建立新的轉譯對應規則
3. 選擇字典模式，並輸入「來源文字」與對應的「點字」欄位

---

## 字典模式說明

自訂字典提供以下三種模式：

---

### 一般

此模式會直接以「點字」欄位內容取代「來源文字」，不進行任何驗證。

適合用於單純文字替換為點字的情境。

---

### 注音

此模式會以「點字」欄位內容取代「來源文字」，並依注音符號規則解析輸入內容。

僅允許合法的注音符號與聲調組合，系統會進行基礎驗證以避免不正確的注音序列。

此模式適用於以臺灣注音點字作為轉譯來源的工作流程。

* 以空白表示第一聲
* 輸入需符合正確的注音符號順序規則

特殊單母音：

`ㄓ、ㄔ、ㄕ、ㄖ、ㄗ、ㄘ、ㄙ`

在未帶韻母時，系統會依注音點字規則自動補上對應的「⠱」點字碼。

---

### Unicode 點字

此模式將「點字」欄位視為純點字輸入。

僅允許輸入 Unicode 點字區段（`0x2800`–`0x28FF`）內的字元。

適合熟悉點字、且需要完全自行控制輸出結果的使用者。

---

透過多國轉譯、固定行寬設定與可自訂的字典系統，DotExpress 提供一套兼顧精準與彈性的文字轉點字流程，協助使用者更有效率地完成紙本點字轉譯與印製前準備作業。

---

## 建置與開發

本專案使用 Python 3.13（64-bit）開發。

若需自行建置執行檔或產生翻譯檔，請先確認 Python 版本符合需求，並安裝 `requirements.txt` 內所列套件：

```bash
pip install -r requirements.txt
```

---

### 建置執行檔

請於 Windows CMD 中執行以下指令，透過 PyInstaller 建立執行檔：

```bash
pyinstaller --onefile --name=DotExpress ^
--noconsole ^
--add-data "liblouis.dll;." ^
--add-data "louis/tables;louis/tables" ^
--add-data "data;data" ^
--add-data "locales;locales" ^
gui.py
```

---

### 產生翻譯模板

如需更新翻譯模板檔（`.pot`），請執行：

```bash
xgettext --language=Python --keyword=_ --output=locales/DotExpress.pot gui.py dialog.py brailleTables/__tables.py
```

---

## 授權條款

本專案採用 GNU General Public License v2.0（GPL-2.0）授權。
